package com.city.itis.dao;

import java.util.List;

import com.city.itis.domain.Site;

/**
 * SiteDao接口
 * @author WY
 *
 */
public interface SiteDao 
{
	/**
	 * 添加站点方法
	 * @param siteCategory
	 * @return 0:添加失败；>1:添加成功
	 */
	public int save(Site site);
	/**
	 * 删除站点方法
	 * @param siteCategory
	 * @return 0:删除失败；>1:删除成功
	 */
	public int delete(Site site);
	

	/**
	 * 根据站点编号，删除站点方法
	 * @param id 站点编号
	 * @return 0:删除失败；>1:删除成功
	 */
	public int deleteById(Integer id);
	
	/**
	 * 根据会员编号，删除所有与该会员相关联的站点方法。
	 * @param id	会员编号
	 * @return
	 */
	public int deleteByMemberId(Integer id);
	
	/**
	 * 修改站点方法
	 * @param siteCategory 
	 * @return 0:修改失败；>1:修改成功
	 */
	public int update(Site site);
	
	/**
	 * 根据站点编号，查询站点信息
	 * @param id
	 * @return 成功：返回SiteCategory对象；失败：返回null。
	 */
	public Site getSiteById(Integer id);
	
	/**
	 * 根据站点名称，查询站点信息方法。
	 * @param siteName
	 * @return
	 */
	public Site getSiteBySiteName(String siteName);
	
	/**
	 * 根据类别编号，查询所用站点信息
	 * @return 成功：返回站点List<Site>对象；失败：返回null。
	 */
	public List<Site> findAllByCategoryNo(Integer categoryNo);
	
	/**
	 * 查询所用站点信息
	 * @return 成功：返回站点List<Site>对象；失败：返回null。
	 */
	public List<Site> findAll();
	
	/**
	 * 根据类别和位置查询方法
	 * @param categoryNo	类别编号
	 * @param lat	纬度
	 * @param lng	经度	
	 * @param area	范围
	 * @return
	 */
	public List<Site> getListByCategoryAndPosition(final int categoryNo,
			final double lat,final double lng,final double area);
	/**
	 * 根据类别和位置查询方法
	 * @param name	站点名称
	 * @param lat	纬度
	 * @param lng	经度
	 * @param area	范围
	 * @return
	 */
	public List<Site> getListByNameAndPosition(final String name,
			final double lat,final double lng,final double area);
	
	/**
	 * 根据会员编号，显示所有站点信息
	 * @param memberId
	 * @return List<Site>
	 */
	public List<Site> listByMemberId(Integer memberId);
}
